//
// Created by 啊汤哥 on 2025/6/23.
//
#include <stdio.h>
#include <stdlib.h>

#define MaxSize 10
typedef struct {
    int data[MaxSize];
    int top;
}SqStack;

// // #define MaxSize 10
// typedef struct {
//     int data[MaxSize];
//     int top0; // 0号栈顶指针
//     int top1; // 1号栈顶指针
// }SqStack;

// // 初始话栈
void InitStack(SqStack &s) {
    s.top = -1;
}

// // 初始话栈
// void InitStack(SqStack &s) {
//     s.top0 = -1;
//     s.top1 = MaxSize;
// }
// // 入栈操作

bool Push(SqStack &s, int value) {
    if (s.top == MaxSize-1) {
        return false;
    }
    s.top = s.top+1;
    s.data[s.top] = value;
    return true;
}

// 出栈
bool Pop(SqStack &s,int &x) {
    if (s.top == -1) {
        return false;
    }
    x = s.data[s.top];  // 先出栈
    s.top = s.top -1; // 在减一
    return true;
}

// 读取栈顶
bool GetTop(SqStack &s,int &x) {
    if (s.top == -1) {
        return false;
    }
    x = s.data[s.top]; // 记录栈顶元素；
    return true;
}